/*
 * GameState.h
 *
 *  Created on: 2011-11-16
 *      Author: liangx
 */

#ifndef GAMESTATE_H_
#define GAMESTATE_H_
#include "GameSetting.h"
#include "Action.h"
#include "qvector.h"
class ai;
class GameState{
	public:
		GameState();
		GameState(const GameState &state);
		GameState(const GameSetting &setting);
		int turnNumber;//who's turn 1 X,-1 O
		int** ptrState;
		int boardSize;
		int depth;
		int utility;
		int difficult;
		bool cutOff();
		bool equal(const GameState &state);
		int getStateValue();
		bool isValidNextStep(const int &x,const int &y);
		bool testTerminate();
		bool existValidMove();
		void getActionList();
		bool isLikely(const GameState &state);
		QVector<Action> actionList;

};

#endif /* GAMESTATE_H_ */
